--POUR CONTROLE

define erp='erp_mli2.';
define outils='outils_mli2.';

/*
CREATE TABLE se_art_prix AS (SELECT * FROM &erp.art_prix WHERE 1=2);

  PROMPT CREATE INDEX se_ART_PRIX_01
CREATE INDEX se_ART_PRIX_01
  ON se_ART_PRIX (
    CLASSE1_LIB,
    TYPPRIX_COD,
    DEB_DAT
  )
  NOLOGGING
;
  PROMPT CREATE INDEX &erp.ART_PRIX_01
CREATE INDEX &erp.ART_PRIX_01
  ON &erp.ART_PRIX (
    CLASSE1_LIB,
    TYPPRIX_COD,
    DEB_DAT
  )
  NOLOGGING
;
*/


truncate TABLE se_ART_PRIX;
--SELECT * FROM  se_ART_PRIX  WHERE combsto_id IN (12610,4891,9187)



/* PMD sur les complet (matiere) */
 INSERT INTO se_ART_PRIX
 (SELECT DISTINCT
         0 enreg_id,
         NULL gen_soc_cod,
         NULL ets_cod,
         NULL depot_cod,
         SubStr(c.PRCOMPLET,InStr(c.prcomplet,'_')+1,10)+0 combsto_id,
         NULL unfab_cod,
         NULL fournisseur_cod,
         'PMD' typprix_cod,
         NULL soc_cod,
         To_Date('31/12/1967','dd/mm/yyyy')+d.datap deb_dat,
         To_Date('31/12/1967','dd/mm/yyyy')+df.datfin fin_dat,
         NULL prix_qt,
         Round(PXTR /100 * /*coef de unf pour remettre en uns*/
         Nvl(REPLACE(REPLACE(replace(c.conv,'/1.10',''),'/1',''),'/',''),1),4) prix_px,
         'M' maj_typ,
         'N' enreg_s,
         NULL prixdemande_typ,
         NULL rechpref_dat,
         NULL prixtrouve_typ,
         NULL majpref_dat,
         NULL ponderationpx_coef,
         'R' traitement_typ,
         prcomplet classe1_lib,
         NULL classe2_lib,
         NULL classe3_lib,
         NULL classe4_lib

    FROM UV_PCATALOGUESTK c,UV_PCATALOGUESTK_TRANCHE t,UV_PCATALOGUESTK_DATAP d
        ,UV_PCATALOGUEStk_DATFIN df,UV_PCATALOGUESTK_PXTR p,uv_pproduits_statut_actuel s
        ,uv_pproduits pr
    WHERE c.FOUR='PMD'
      AND t.id=c.id
      AND s.id=c.PRCOMPLET /*AND (s.statut<900 OR s.statut IS NULL)*/
      AND d.id=t.id AND d.rangmulti2=t.rangmulti2
      AND df.id(+)=t.id AND df.rangmulti2(+)=t.rangmulti2
      AND p.id=t.id AND p.rangmulti2=t.rangmulti2
      --AND c.PRCOMPLET LIKE '%001664'
      AND pr.id=c.prcomplet
      --AND REPLACE(REPLACE(replace(c.conv,'1/1.10',1/1.10),'/1',''),'/','')!='1'

      AND &erp.isnumeric(SubStr(c.PRCOMPLET,InStr(c.prcomplet,'_')+1,10))=1
      AND EXISTS (SELECT 1 FROM &erp.vrt_combsto v WHERE v.combsto_id= SubStr(c.PRCOMPLET,InStr(c.prcomplet,'_')+1,10)+0)
  /*  ORDER BY 10 desc*/
     );



 UPDATE se_ART_PRIX tf SET enreg_id=Nvl((select Max(enreg_id) FROM &erp.ART_PRIX f WHERE f.combsto_id=tf.combsto_id AND f.typprix_cod=tf.typprix_cod AND f.DEB_DAT=tf.DEB_DAT),0) ;
 UPDATE se_ART_PRIX tf SET enreg_id=&outils.enreg_id.NEXTVAL WHERE enreg_id IS NULL OR enreg_id =0;

 --DELETE
 --SELECT * FROM &erp.art_prix p WHERE typprix_cod='PMD' AND EXISTS (SELECT 1 FROM se_art_prix pp WHERE pp.enreg_id=p.enreg_id AND pp.prix_px!=p.prix_px)
 --select * from se_ART_PRIX  order by combsto_id , deb_dat desc
 CALL uvse_synchroverserp('enreg_id','ART_PRIX','N') ;

 commit;




select * from (
SELECT &outils.stragg(source) source, enreg_id, gen_soc_cod, ets_cod, depot_cod, combsto_id, unfab_cod, fournisseur_cod, typprix_cod, soc_cod, deb_dat, fin_dat, prix_qt, prix_px, maj_typ, enreg_s, prixdemande_typ, rechpref_dat, prixtrouve_typ, majpref_dat, ponderationpx_coef, traitement_typ, classe1_lib, classe2_lib, classe3_lib, classe4_lib
FROM (
  SELECT 'uv' source ,tf.* FROM se_ART_PRIX tf --where exists (select 1 from &erp.ART_PRIX f WHERE f.CLASSE1_LIB=tf.CLASSE1_LIB AND f.typprix_cod=tf.typprix_cod AND f.DEB_DAT=tf.DEB_DAT)
  UNION ALL
  SELECT 'se' source ,f.* FROM &erp.ART_PRIX f where typprix_cod in ('PMD')   --where exists (select 1 from se_ART_PRIX tf WHERE f.CLASSE1_LIB=tf.CLASSE1_LIB AND f.typprix_cod=tf.typprix_cod AND f.DEB_DAT=tf.DEB_DAT)
  )

GROUP BY enreg_id, gen_soc_cod, ets_cod, depot_cod, combsto_id, unfab_cod, fournisseur_cod, typprix_cod, soc_cod, deb_dat, fin_dat, prix_qt, prix_px, maj_typ, enreg_s, prixdemande_typ, rechpref_dat, prixtrouve_typ, majpref_dat, ponderationpx_coef, traitement_typ, classe1_lib, classe2_lib, classe3_lib, classe4_lib
HAVING Count(1)!=2 ) r
ORDER BY CLASSE1_LIB,typprix_cod,combsto_id,deb_dat ;
